As is well known to one of ordinary skill in the art, speech recognition is a field in computer science that deals with designing computer systems that can recognize spoken words. A number of speech recognition systems are currently available (e.g., products are offered by IBM, Dragon Systems and Philips). Traditionally, speech recognition systems have only been used in a few specialized situations due to their cost and limited functionality. For example, such systems have been implemented when a user was unable to use a keyboard to enter data because the user's hands were disabled. Instead of typing commands, the user spoke into a microphone. However, as the cost of these systems has continued to decrease and the performance of these systems has continued to increase, speech recognition systems are being used in a wider variety of applications (as an alternative to or in combination with keyboards or other user interfaces). For example, speech actuated control systems have been implemented in a motor vehicle to control various automotive accessories within the motor vehicle.
A typical speech recognition system, that is implemented in a motor vehicle, includes voice processing circuitry and memory for storing data representing command words (that are employed to control various vehicle accessories). In a typical system, a microprocessor is utilized to compare the user provided data (e.g., voice input) to stored speech models to determine if a word match has occurred and provide a corresponding control output signal in such an event. The microprocessor has also normally controlled a plurality of motor vehicle accessories, e.g., a cellular telephone and a radio. Such systems have advantageously allowed a driver of the motor vehicle to maintain vigilance while driving the vehicle.
In a typical computer system, various software applications may receive notification about keyboard events, such as, a key press, a key hold and/or a key release, via a message provided by an operating system. In response to these messages, an appropriate task is usually initiated by one or more of the applications. Today, many voice recognition applications include separate code, which allows the application to receive both voice and manual input (for example, the manual input may be provided by a switch, a push-button or a rotary dial). This has allowed a user of the speech recognition system to also manually (as opposed to verbally) provide input to the system. However, such systems have typically required increased development time to write and prove-in their voice recognition applications as the applications have to perform a sequence of additional calls to achieve full application level functionality.
What is needed is a speech recognition system that includes a voice recognition application that does not require additional calls to handle a voice input.